package utils;

import java.util.List;

import javax.ejb.Remote;

import dtos.UserDTO;

@Remote
public interface UserDAORemote {
	
	public UserDTO getUser(int id);

//	public String updateUser(UserDTO ud, String verifPass);
	
	
	public String updateUserPassword(UserDTO user, String password);

	public List<UserDTO> getAllUsersByUsername(String username);

	void insertUser(UserDTO ud);

	List<UserDTO> getAllUsersDTO();

	void deleteUser(UserDTO ud);

	void updateUsername(UserDTO user, String username);

	void updateUser(UserDTO ud);

	String updateUserProfile(UserDTO user);

	UserDTO getAdmin();

	List<UserDTO> getUsersByUsertype(int idUsertype);

	List<UserDTO> getInactiveOfficeManagers();

	UserDTO getUserDTOByEmail(String email);

	boolean isOfficeManager(UserDTO ud);

	boolean isTechnician(UserDTO ud);

	boolean isAdmin(UserDTO ud);

	boolean isBasicUser(UserDTO ud);

	List<UserDTO> getUserOrderedByDomain();

	List<UserDTO> getUserOrderedByUsername();

	List<UserDTO> getUserOrderedByDomainDesc();

	List<UserDTO> getUserOrderedByUsernameDesc();

	List<UserDTO> getUserOrderedByIsActiveDesc();

	List<UserDTO> getUserOrderedByUsertype();

	List<UserDTO> getUserOrderedByUsertypeDesc();

	List<UserDTO> getUserOrderedByName();

	List<UserDTO> getUserOrderedByNameDesc();

	List<UserDTO> getUserOrderedByEmailDesc();

	List<UserDTO> getUserOrderedByEmail();

	List<UserDTO> getUserOrderedByReplacedby();

	List<UserDTO> getUserOrderedByReplacedbyDesc();

	List<UserDTO> getUsersByDomainandUsertype(int idDomain, int idUsertype);

	List<UserDTO> getUserOrderedByIsActive();

	void setDomainNullByDomainId(int idDomain);
	
	public List<UserDTO> getAllReplacedOfficeManagers();

	List<UserDTO> getUsersByDomain(int idDomain);
	
	void updateUserPasswordWithCodification(UserDTO user, String password);

	List<UserDTO> getActiveOfficeManagers(UserDTO curUser);



	
}
